import App from './App'



// #ifndef VUE3
import Vue from 'vue'
import './uni.promisify.adaptor'
Vue.config.productionTip = false
App.mpType = 'app'
const app = new Vue({
  ...App
})
app.$mount()
// #endif

// #ifdef VUE3
import { createSSRApp } from 'vue'
// 封装了请求工具 request.js
import request from './utils/request'

   

//封装请求方法
// 按需导入 $http 对象
import { $http } from '@escook/request-miniprogram'

// 全局统一注入
$http.beforeRequest = function (options) {
  // 把业务自己传的 header 也合并进来，防止被覆盖
  options.header = Object.assign({}, createAuthHeader(), options.header)
}

uni.$http = $http
// 配置请求根路径
$http.baseUrl = 'http://8.138.211.226:8111/api'

// 请求拦截器
$http.beforeRequest = function (options) {
  // 需要 token 的接口自己排除登录类地址

    options.header = Object.assign({}, options.header, createAuthHeader())

}


// 请求开始之前做一些事情
$http.beforeRequest = function (options) {
  uni.showLoading({
    title: '数据加载中...',
  })
}

// 请求完成之后做一些事情
$http.afterRequest = function () {
  uni.hideLoading()
}

// 封装的展示消息提示的方法
uni.$showMsg = function (title = '数据加载失败！', duration = 1500) {
  uni.showToast({
    title,
    duration,
    icon: 'error',
  })
}


export function createApp() {
  const app = createSSRApp(App)
  // Vue3 中通过 globalProperties 挂载全局请求工具
  app.config.globalProperties.$request = request
  return {
    app
  }
}
// #endif